package com.lucky.common.pojo.po;

import com.baomidou.mybatisplus.annotation.*;
import com.lucky.common.base.BasePO;
import lombok.*;
import org.springframework.security.core.GrantedAuthority;
import org.springframework.security.core.authority.SimpleGrantedAuthority;
import org.springframework.security.core.userdetails.UserDetails;

import java.io.Serial;
import java.io.Serializable;
import java.util.Collection;
import java.util.Date;
import java.util.List;
import java.util.stream.Stream;

/** null */
@Getter
@Setter
@TableName("M_USER")
@KeySequence(value="SEQ_M_USER", dbType = DbType.ORACLE)
public class UserPO extends BasePO {
    // 序列化版本号（建议显式声明，避免反序列化时因类结构变化导致异常）
    @Serial
    private static final long serialVersionUID = 1L;
    /** 主键ID */
    @TableId
    private Long id;

    /** 机构ID */
    private Long orgId;

    /** 用户类型：1根用户 0子用户 */
    private String userType;

    /** 创建人 */
    private String creator;

    /** 登录用户姓名 */
    private String userCode;

    /** 登录用户姓名 */
    @TableField("user_name")
    private String username;

    /** 密码 */
    private String password;

    /** 全名 */
    private String fullName;

    /** 证件号 */
    private String idCode;

    /** 性别 1 男 0女 */
    private String gender;

    /** 所在部门 */
    private String dept;

    /** 职务 */
    private String position;

    /** 邮箱地址 */
    private String email;

    /** 电话号码 */
    private String tel;

    /** 传真 */
    private String fax;

    /** 手机号码 */
    private String mobile;

    /** 系统标识(0内部系统,1对外系统) */
    private String userLevel;

    /** 登入标识 0-未登录,1-已登录 */
    private String logonFlag;

    /** 登入时间 */
    private Date logonTime;

    /** 用户状态(0未审核,1启用,2停用,3审核不通过,4注销.5审核中) */
    private String userStatus;

    /** 注册日期 */
    private Date regTime;

    /** 启用时间 */
    private Date startTime;

    /** 停用时间 */
    private Date stopTime;

    /** 停用原因 */
    private String stopReason;

    /** 审核日期 */
    private Date verifyTime;

    /** 审核不通过原因 */
    private String verifyReason;

    /** 备注 */
    private String remark;

    /** 国别 */
    private String country;

    /** 省 */
    private String province;

    /** 市 */
    private String city;

    /** 区 */
    private String county;

    /** 街道地址 */
    private String address;

    /** 联系地址 */
    private String contactAddr;

    /** 注销时间 */
    private Date logoutTime;

    /** 注销原因 */
    private String logoutReason;

    /** 操作人 */
    private String optUser;

    /** 操作时间 */
    private Date optTime;

    /** 操作类型(01新增02修改03删除) */
    private String optType;

    /** 数字证书主题DN */
    private String caSubjection;

    /** 数字证书有效期开始时间 */
    private Date caBeginTime;

    /** 数字证书有效期结束时间 */
    private Date caEndTime;

    /** 数字证书绑定时间 */
    private Date caBindTime;

    /** 短信功能状态 1启用 0停用 默认值1 */
    private String smsStatus;

    /** 短信功能通知标志  1待通知  0已通知  默认值0 */
    private String smsStatusFlag;

    /** 存档编号 */
    private String archiveNo;

    /** 机构名称(只存分中心用户所在机构名称) */
    private String orgName;

    /** 注册客户端来源[0-PC端，1-保理系统同步的子用户， 01-分中心用户，02-人行再贷款用户， 03-Android端，04-IOS端] */
    private String source;

	/** 平台来源[00-默认，01-应收平台，02-存货平台] */
    private String dataSource;

    /**移动电话绑定标识[0-未绑定，1-已绑定]*/
    private String cellphoneBind;

}